package com.kinyx.framework.processor;

import javax.lang.model.element.TypeElement;
import javax.lang.model.util.Elements;

/**
 * TypeElement封装类
 */
public class TypeElementWrapper extends ElementWrapper {

	/**
	 * 构造方法
	 * @param context 上下文环境
	 * @param element 元素对象
	 */
	public TypeElementWrapper(final Context context, final TypeElement element) { super(context, element); }

	/**
	 * Returns the fully qualified name of this type element.
	 * More precisely, it returns the <i>canonical</i> name.
	 * For local and anonymous classes, which do not have canonical names,
	 * an empty name is returned.
	 *
	 * <p>The name of a generic type does not include any reference
	 * to its formal type parameters.
	 * For example, the fully qualified name of the interface
	 * {@code java.util.Set<E>} is "{@code java.util.Set}".
	 * Nested types use "{@code .}" as a separator, as in
	 * "{@code java.util.Map.Entry}".
	 *
	 * @return the fully qualified name of this class or interface, or
	 * an empty name if none
	 *
	 * @see Elements#getBinaryName
	 */
		// @jls 6.7 Fully Qualified Names and Canonical Names
	public String getQualifiedName() { return ((TypeElement) this.element).getQualifiedName().toString(); }

}
